# 函数 def 函数名(参数）:
def fucone(x):
    if x > 10:
        return True
    return False


print(fucone(11))

from testdef import hello  # 导入别的py文件里的函数，文件好像不能用数字开头，否则会报错

hello()


def nothing():
    pass  # 什么也不做，就用pass语句，todo可以用pass先代替


nothing()


# nothing(10.) 参数不对，报错


def myabs(x):
    if not isinstance(x, int):
        print(type(x))
        raise TypeError('must int')  # raise 抛出异常
    if x > 10:
        return x
    else:
        return -x;


# myabs('12')

x = 12.0
print(isinstance(x, (int, float)))  # 这边注意，x不能用常量12代替，后边的必须用小括号，因为参数是tuple类型。用[int,float]会报错

import math


# 函数返回多个值
def move(x, y, step, angel):
    nx = x + step * math.cos(angel)
    ny = y + step * math.sin(angel)
    return nx, ny


nx, ny = move(10, 10, 5, 30)
print(nx, ny)

# 其实返回值是一个tuple,可以用一个变量接收返回值
r = move(10, 10, 5, 30)
print(r)


# 小练习
def test(a, b, c):
    t = b * b - 4 * a * c
    math.sqrt(t)
    x1 = (-b + t) / (2 * a)
    x2 = (-b - t) / (2 * a)
    return x1, x2


result = test(10, 20, 5)
print(result)
